<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 1. 封装函数，实现随机rgb颜色，结果为字符
    //     - 颜色值的范围：0~255

    function randomRGB(){
        var r = random(0, 255);
        var g = random(0, 255);
        var b = random(0, 255);
        return "rgb("+ r +","+ g +","+ b +")";
    }
    // console.log(randomRGB());

    
    // 2. 封装函数，实现随机十六进制的颜色，结果为字符
    //     - 颜色值的范围：0~255
    function randomColor(){
        var r = random(0, 255).toString(16);
        var g = random(0, 255).toString(16);
        var b = random(0, 255).toString(16);
        return "#" + addZero(r) + addZero(g) + addZero(b);
    }

    // "#1a2394"
    // 1a
    // 23
    // 94
    // 0~15
    // d
    // 0d
    // str.length < 2

    // console.log(randomColor())

    // 3. 封装函数，实现4位数字的随机验证码
    // random(1000,9999)
    function randomCode(){
        var str = "";
        for(var i=0;i<4;i++){
            str += random(0,9)
        }
        return str;
        // return Math.random().toString().substr(3, 4);
    }
    // console.log(randomCode());


    // 4. 封装函数，实现4位数字字母混合的随机验证码
    function randomCode2(){
        var s = "";
        // 随机字符库（长度至少是3的倍数，保证每种字符出现的几率是相同的）
        for(var i=0;i<10;i++){
            s += random(0, 9);
            s += String.fromCharCode(random(97, 122));
            s += String.fromCharCode(random(65, 90));
        }
        // 从随机字符库中随机取4个
        var str = "";
        for(var i=0;i<4;i++){
            str += s[random(0, s.length-1)]
        }

        return str;
    }
    // console.log(randomCode2());


    // 6. 封装计算两个日期之间差值的函数
    //     - 利用参数，传入两个指定日期（字符）
    //     - 返回值为对象，如：{day:x, hour: y, minu: z, sec: s}
    function dateDiff(d1, d2){
        d1 = new Date(d1);
        // 设置默认参数
        if(d2){
            d2 = new Date(d2);
        }else{
            d2 = new Date();
        }

        // 计算差值
        var t = Math.abs(d1.getTime() - d2.getTime());

        // 利用数学运算求天，时，分，秒
        var day = parseInt(t/1000/60/60/24);
        var h = parseInt((t - (day*24*60*60*1000))/1000/60/60);
        var m = parseInt((t - (day*24*60*60*1000) - (h*60*60*1000))/1000/60);
        var s = parseInt((t - (day*24*60*60*1000) - (h*60*60*1000) - (m*1000*60))/1000)

        // 返回打包之后的数据
        return {
            day: day,
            hour: h,
            minu: m,
            sec: s
        }
    }

    // console.log(dateDiff("2008.8.8", "2022.8.8"));

    // console.log(dateDiff("2008.8.8"));




    function random(max, min){
        return Math.round(Math.random() * (max - min) + min);
    }
    function addZero(n){
        return n.length<2 ? "0"+n : n;
    }
</script>
</html>